Efficient creation of documents

ABSTRACT

Some embodiments provide a method that efficiently designs a document. The method provides the user with a selection of templates, each with a default configuration for content. After the user selects a template, the method provides the user with a selection of page designs to add to the selected template. When the user selects one of the page designs, the method adds the page design to a document that it presents to the user based on the selected template. Some embodiments provide methods for modifying default content of template documents that have several default text fields. When a user selects a default text field, the method of some embodiments selects the entire default text field for immediate editing by the user.

CLAIM OF BENEFIT TO PRIOR APPLICATIONS

This application is a continuation application of U.S. patentapplication Ser. No. 11/033,480, filed Jan. 10, 2005 now U.S. Pat No.8,255,796. U.S. patent application Ser. No. 11/033,480 claims thebenefit of U.S. Provisional Patent Application 60/651,479, filed Jan. 9,2005. U.S. patent application Ser. No. 11/033,480 is incorporated hereinby reference.

FIELD OF THE INVENTION

The invention relates to efficient creation of documents.

BACKGROUND OF THE INVENTION

Among the myriad of applications available today, it is still difficultto locate a streamlined, yet powerful word processing application thatgives the average user the ability to easily create well-designeddocuments. On a daily basis, users create documents from a simple letteror invitation to a newsletter or brochure. Users typically compose anddesign a variety of these documents on a computer. While computers haveaided the user, computers have added complication as well with difficultto use tools and unintuitive, unimaginative interfaces. Often currentapplications hinder users from changing the layout and look of thedocuments they create because of the rigid format and structure of thetemplates offered to the user, or the lack of usability of the interfaceor application itself.

Users often have needs of presenting content in a particular format suchas data by using any number of tables or charts. Current applicationsattempt to incorporate the more specialized content or formatted datainto their documents in awkward fashion. Furthermore, currentapplications have lagged behind the need of users to incorporate amultitude of latest generation text and graphics types, andmultimedia-based content such as movies, hyperlinks, and audio. The needand ability to publish documents online has also added new advances andchallenges to the average user.

As mentioned, the templates that come with existing applications may notalways fit the job. Thus, a user may be required to apply designknowledge or advanced computer skill to create user specific tools suchas templates that suit the user's particular needs. However, creatingsuch customized tools may represent a daunting task to even those wellversed in the use of the application. Even to those users lucky enoughto overcome the obstacles, much time will be spent both on elements ofdesign and computer expertise by many users whose primary job functionor interest is neither of these.

One obvious solution to the failings of existing applications andtemplates is to add more rigid, confined templates that may or may notfit the purpose and design goals of the user. Another solution is toallow the user to start from a plain document or a blank template,without pre-formatting which allows a user to build a needed template.However, building from scratch defeats the purpose of having templates.Therefore, neither of these solutions really offers a complete answer tousers attempting to create a variety of documents using the latestcontent. An improved solution would involve both a large complement ofpre-designed templates as well as the ability to further expand andconfigure these templates for individual tasks.

Thus, there is a need in the art for an application that is bettersuited to current content and needs of users. There is also a need inthe art for a variety of document template types from which to choose.There is a further need in the art for the ability to expand templates.Moreover, there is a need in the art to facilitate user expansion andconfiguration of templates. For instance, to at least partially meet theneeds mentioned above, a user should have the ability to drag or placecontent (e.g., imported graphics, movies, sound, text boxes, charts,tables, and shapes) onto a page of a multi-page user configurabletemplate.

SUMMARY OF THE INVENTION

Some embodiments provide a method that efficiently designs a document.The method initially provides the user with a selection of templates,each with a default configuration for content. After the user selects atemplate, the method provides the user with a selection of page designsto add to the selected template. When the user selects one of the pagedesigns, the method adds the page design to a document that it presentsto the user based on the selected template.

In some embodiments, the method presents to the user a default documentwith a set of page designs initially when the user selects the templatefrom the selection of templates. In some embodiments, each template hasan associated set of page designs that were specifically designed apriori to match the theme of the template.

Some embodiments provide methods for modifying default content oftemplate documents that have several default text fields. When a userselects a default text field, the method of some embodiments selects theentire default text field for immediate editing by the user. In someembodiments, the method highlights a text field selected by the user.Also, in some embodiments, the method deletes the entire default contentof the text field when the user provides new content for the selectedfield. In some embodiments, the new content can be text, image, or othertype of content.

Some embodiments define a template document in terms of several defaultfields for holding content. Some of these embodiments highlight thedifferent fields on a presented template document as the user dragscontent over the fields. In some embodiments, several layers form thetemplate document. Instead of, or in conjunction with the highlightingof the fields, some embodiments also highlight the different layers thatform the template document as the user drags content over the document.Some embodiments also move and/or change the shape of default fieldswhen a user adds content in the vicinity of the default fields.

BRIEF DESCRIPTION OF THE DRAWINGS

The novel features of the invention are set forth in the appendedclaims. However, for purpose of explanation, several embodiments of theinvention are set forth in the following figures.

FIG. 1 illustrates several user selectable and configurable templates ina menu.

FIG. 2 illustrates a Photo Journal template among the Journal typetemplates.

FIG. 3 illustrates an example where a user has selected the Newsletterstype.

FIG. 4 illustrates a Cover page design of the Design Newslettertemplate.

FIG. 5 illustrates the entire contents of a field in the page designselected and highlighted with just a single click of a pointing device.

FIG. 6 illustrates a prompt to a user that the image contents of a fieldare merely a placeholder that is intended to be replaced by the user'sown content.

FIG. 7 illustrates a dropdown menu for selection of additional pagedesigns in the Design Newsletter template.

FIG. 8 illustrates selection of a Wide Column with Sidebar page designfor insertion after the Cover page design in the Design Newslettertemplate.

FIG. 9 illustrates the Wide Column with Sidebar page design insertedinto the open document after the Cover page design.

FIG. 10 illustrates selection of a Text Page for insertion into the opendocument.

FIG. 11 illustrates the Text Page inserted into the open document.

FIG. 12 illustrates the inserted page designs, the Cover, the WideColumn with Sidebar, and the Text Page, together in the same opendocument.

FIG. 13 illustrates a Title Page design of the Photo Journal template.

FIG. 14 illustrates a selection of a Medium Photo Collage page design ofthe Photo Journal template.

FIG. 15 illustrates a Medium Photo Collage page design added after theTitle Page design in the Photo Journal template.

FIG. 16 illustrates a media button and media library for adding contentnext to a page design currently being viewed for editing.

FIG. 17 illustrates the entire contents of a field containingplaceholder text selected by a single click of the pointing device.

FIG. 18 illustrates a user replacing all the selected placeholder textby typing “HELLO WORLD!”

FIG. 19 illustrates a multimedia graphic selected in the media libraryto replace placeholder text in a field of the page design currentlybeing viewed for editing.

FIG. 20 illustrates the placeholder text contents of the field beingreplaced with content from the media library by using a single(drag-and-drop) operation.

FIG. 21 illustrates a multimedia graphic selected in the media libraryto replace a placeholder image in a field of the page design currentlybeing viewed for editing.

FIG. 22 illustrates the placeholder image contents of the field beingreplaced with content from the media library by using a single(drag-and-drop) operation.

FIG. 23 illustrates an image being dragged from the media library anddropped into a floating layer of a Text Page design.

FIG. 24 illustrates the image being dragged to one region of thefloating layer of the page design and the text in the body of the pagedesign wrapping and shifting onto another Text Page design in order thatthe image not occlude the text.

FIG. 25 illustrates the image being dragged to another region of thefloating layer such that text in the body of the page design wraps andshifts in real time to compensate for the movement of the image.

FIG. 26 illustrates a wrap menu through which a user can specify how thebody should wrap around the floating layer objects.

FIG. 27 illustrates highlighting the border of a floating layer when acursor is over the floating layer of a document.

FIG. 28 illustrates highlighting the border of a body when a cursor isover the body of a document.

FIG. 29 illustrates highlighting the border of a field when a cursor isover a field of a document.

FIG. 30 is a process flow for highlighting according to some embodimentsof the invention.

FIG. 31 is an object diagram that represents the document shown in FIG.4.

FIG. 32 is the object diagram with a placeholder object updated toreflect a new image (winter scene) that has replaced a previous image(girls).

FIG. 33 is an object diagram for the three-page document illustrated inFIG. 12.

FIG. 34 illustrates an example of a word processing application having aparser retrieve an XML description of a document that is stored on adisk.

FIG. 35 presents a computer system with which some embodiments of theinvention are implemented.

DETAILED DESCRIPTION OF THE INVENTION

In the following detailed description of the invention, numerousdetails, examples, and embodiments of the invention are set forth anddescribed. However, it will be clear and apparent to one skilled in theart that the invention is not limited to the embodiments set forth andthat the invention may be practiced without some of the specific detailsand examples discussed.

Some embodiments provide a method that efficiently designs a document.The method initially provides the user with a selection of templates,each with a default configuration for content. After the user selects atemplate, the method provides the user with a selection of page designsto add to the selected template. When the user selects one of the pagedesigns, the method adds the page design to a document that it presentsto the user based on the selected template.

In some embodiments, the method presents to the user a default documentwith a set of page designs initially when the user selects the templatefrom the selection of templates. In some embodiments, each template hasan associated set of page designs that were specifically designed apriori to match the theme of the template.

Some embodiments provide methods for modifying default content oftemplate documents that have several default text fields. When a userselects a default text field, the method of some embodiments selects theentire default text field for immediate editing by the user. In someembodiments, the method highlights a text field selected by the user.Also, in some embodiments, the method deletes the entire default contentof the text field when the user provides new content for the selectedfield. In some embodiments, the new content can be text, image, or othertype of content.

Some embodiments define a template document in terms of several defaultfields for holding content. Some of these embodiments highlight thedifferent fields on a presented template document as the user dragscontent over the fields. In some embodiments, several layers form thetemplate document. Instead of, or in conjunction with the highlightingof the fields, some embodiments also highlight the different layers thatform the template document as the user drags content over the document.Some embodiments also move and/or change the shape of default fieldswhen a user adds content in the vicinity of the default fields.

Several more detailed embodiments will now be described. Theseembodiments are implemented by a word processing application. One ofordinary skill will realize that the invention can be implemented withinother applications, such as applications for preparing presentations(e.g., Keynote®, PowerPoint®, etc.).

The description below is divided into three sections. Section Idescribes selecting and configuring a template document with multiplepage designs to quickly create a custom document. Section II describesmodifying default content provided in a template document. Section IIIthen describes the software design of a document in some embodiments ofthe invention.

I. Selecting and Configuring a Template

A. Selecting a Template

The word-processing application of some embodiments allows a user toselect a template document from a list of template types. Theapplication then presents the user with one or more template pages, oneor more of which have default page designs associated with the selectedtemplate. As used herein, a template document or page refers to adocument or page created by using a particular template before theaddition of any user content.

For the user's convenience, the word processing application groups thepreconfigured templates into several template types as shown in FIG. 1.Specifically, FIG. 1 shows a template-selection menu 105 that theapplication presents to the user when the user starts the application ortries to open a new document through the application. As shown in thisfigure, the template-selection menu includes two display sections, atemplate-type display section 110 and a template-preview display section115.

The template-type display section 110 lists the types of templatesprovided by the application. For instance, in the example illustrated inFIG. 1, this section illustrates the following selectable templatetypes: All, Blank, Newsletters, Journals, Invitations, Stationary,Resumes, Education, and Marketing template types.

The template-preview display section 115 provides a thumbnail preview ofeach template that the application provides for the template type thatis selected in the template-type window 110. In the example illustratedin FIG. 1, the type selected in the template-type section 110 is the“All” type, which, in some embodiments, includes all the template types.Accordingly, in this example, the template-preview display section 115provides a thumbnail preview of all the templates provided by theapplication.

On the other hand, FIG. 2 illustrates an example where a user hasselected the Journal template type 210 in the template-type section 110.Hence, in this example, the template-preview display section 215illustrates thumbnail previews of each journal template provided by theapplication. These templates include Travel, Photo, and Daily Journaltemplates.

Similarly, FIG. 3 illustrates an example where a user has selected theNewsletters type 310. In this example, the template preview section 115illustrates thumbnail previews of each newsletter template provided bythe application. These templates include Family, Education, Club,Financial, Design, and Non-Profit newsletter templates. In the examplesdescribed above, each thumbnail preview in the preview section 115 is apreview illustration of a first page design for each template availablein the menu 105.

B. Viewing Template Document and Adding Template Pages

When a user selects one template from the preview section 115, theapplication presents to the user a template document based on theselected template. For instance, FIG. 4 illustrates the presentation ofa page 405 based on the Design Newsletter template 315 (previewed inFIG. 3). The application would display this page to the user when theuser selects the Design Newsletter template 315 in the template-previewsection 115. For some templates, the application presents a templatedocument with only one page, while for other templates the applicationpresents a template document with several pages. Each template page thatthe application presents to the user has a default page design that isassociated with the selected template.

Also, in some embodiments, each template page has one or more contentfields that are populated by default placeholder content that can bequickly removed and/or edited by the user, as further described below inSection H. These fields typically contain default content that suggeststo the user the expected appearance of the user's own content. Forinstance, the page 405 shown in FIG. 4 is based on the Cover page designof the Design Newsletter template. As shown in FIG. 4, a first field 410in the center of the page 405 contains default content in the form ofplaceholder text. The default content generally conveys to the user thefont and formatting that is used in the field 410. In addition, whenhighlighted, the placeholder text of the first field 410 delineates theborder of the first field 410 from the surrounding template page 405 andother fields (e.g., a second field 415), as shown in FIG. 5.

In some embodiments, placeholder text is in Latin to distinguish theplaceholder text from the user's own content. However, any number oflanguages, symbols, or other distinguishing content could be used as aplaceholder in the first field 410. In addition to text, the defaultcontent of a template page might include other placeholder content, suchas images, graphics, colors, sounds, video, etc. For instance, FIG. 6shows an image occupying a field 415 in the upper right portion of thetemplate page 605. As shown in this figure, when the cursor is placedover such a field 615, the user is prompted by a message 620 statingthat the contents of the field merely represent a placeholder for theuser's own content.

Once the application presents a template document to the user, the usercan get a list of other page designs that the user can use to add othertemplate pages to the template document. This list is accessible to theuser in a variety of ways. One way is through the menu options on top ofthe application's window. Another way is through a “Pages” icon 425illustrated in FIG. 4. When the user selects this icon 425, a dropdownmenu 705 appears to list several additional page designs that may beadded to the template document currently open for editing, as shown inFIG. 7.

When the Design Newsletter template 315 is selected, the applicationcreates a template document and specifies the first page of thatdocument to have the first page design of the selected template 315, asshown in FIG. 4. As shown in the dropdown menu 705 in FIG. 7, the firstpage illustrated in FIG. 4 is the “Cover” page design 710 of the DesignNewsletter template. The dropdown menu 705 also identifies the followingpage designs for the Design Newsletter template: 3 Column with Sidebar,Wide Column with Sidebar, Table & 3 Column, Table & Wide Column, TextPage, Back Page, and Mailer.

The user may select one or more of the additional page designs from thedropdown menu 705 to custom configure the current template documentcreated by using the Design Newsletter template. For instance, FIG. 8shows the selection of the Wide Column with Sidebar page design 810.FIG. 9 illustrates the subsequent addition to the newsletter templatedocument of a page 2 with the page design 810. As shown in FIG. 9, oncethe additional template page is inserted into the current templatedocument, some embodiments display the most recently added page 910.Also, in some embodiments, the addition of a template page to a templatedocument inserts the newly added template page after the template pagecurrently in view. In this case, the page 2 is added after the defaultcover page of this template, which the application initially added tothe document.

To further illustrate the current example, insertion of an additionaltemplate page to the current template document will be described. Theresult is a three-page template document. However, one of ordinary skillwill recognize the many permutations of page design combinationspossible for each template document.

FIG. 10 shows the Text Page design 1020 selected for insertion after theWide Column with Sidebar page design 1010. FIG. 11 then shows the newlyadded template page 1120, which is based on the Text Page design 1020,inserted after the previously added template page, which was based onthe Wide Column with Sidebar page design. As shown in FIG. 12, theresult is a three-page template document that includes three templatepages with, respectively, a cover page 405, a wide-column-with-sidebarpage 1010, and a text page 1120.

FIGS. 13, 14, and 15 provide another example of adding template pages toa template document. In the example shown in FIG. 2, the Journalstemplates 210 are chosen for display in the menu 205. When the PhotoJournal template 220 is selected from the menu 205, the applicationcreates a template document and specifies the first page of thatdocument to have the first page design of the selected template 210, asshown in FIG. 13. As shown in the dropdown menu 1305 in FIG. 13, thefirst page design 1310 in the Photo Journal template is the Title Pagedesign.

As mentioned above, each template has multiple different user selectablepage designs that conveniently can replace or supplement the defaultpage design(s) presented to the user in the default template document.For instance, the dropdown menu 1305 in FIG. 13 identifies the followingpage designs for the Photo Journal template: Title Page, Large PhotoCollage, Medium Photo Collage, Small Photo Collage, and Text Pagedesigns.

A user may assemble various permutations of these page designs in thepresented template document to create a custom template document. Forinstance, FIG. 14 illustrates the selection of the Medium Photo Collagepage design 1405. FIG. 15 illustrates the subsequent addition to thePhoto Journal template document of a page 2 with the page design 1405.The newly added page 2 is inserted after the Title Page within the PhotoJournal template document. Template pages may also be moved within atemplate document and removed from the template document in similarfashion.

In sum, the application allows a user to create a template document andadd or delete one or more template pages that are based on one or morepage designs, in order to create a desired template configuration. Thepage designs that are specified for a template are designed to match thetheme of the template. In some embodiments, the selectable page designsare not only pre-designed, but may also have pre-specified formattingrules for automatic formatting of content. The pre-designed content andformatting aids a user who may have little knowledge of designprinciples or computer programming in quickly turning various contentinto aesthetically pleasing page designs.

Some embodiments allow the user to modify the preconfiguration of bothexisting and new templates and page designs in order to create customuser defined templates and page designs. These embodiments use a masterpage model that has three master pages (first, even, and odd masterpages). A user can modify the page masters to create custom templates.The user in these embodiments may further create custom page designmasters for the newly created custom templates.

II. Adding and Removing Content

Once a template and page design(s) are selected to create a templatedocument, the invention allows the user to easily modify the defaultcontent provided by the application, in order to quickly create apersonalized user document. The user can modify the template document byadding new content, changing or deleting default content, importing ordragging existing content, etc. Content includes text, image, graphics,animation, video, audio, etc.

The invention's word processing application allows the user to selectexisting content and add this content to a page of the document througha variety of known manners in the art. For instance, the content can beselected from a menu within the application, from a file, from anotherapplication, etc., and it can be added to a page through a cut-and-pasteoperation, a drag-and-drop operation, etc.

The invention's application also provides unique ways for importingexisting content into a document. Specifically, as illustrated in FIG.16, the application includes a media button 1605 for accessing a library1610 of media (i.e., content) on the computer. As shown in this figure,the media library 1610 allows a user to access content from a variety offiles external to the page 405 of a document being edited. For instance,in some embodiments, these external files might include iTunes®,iPhoto®, and Movie (e.g. Quicktime®, etc.) files. More generally, themedia button 1605 may be used to access a variety of content from aspectrum of media such as TIFF, GIF, JPEG, PDF, PSD, EPS, PICT, MOV,FLASH, MP3, MP4, AIFF, AAC, etc. Since content can be exchanged (i.e.,moved to and from the media library 1610), some embodiments furtherallow easy building or augmentation of the media library 1610.

A. Replacing Placeholder Text with Text

Template pages are preconfigured with fields and placeholder contentwithin the fields to suggest to a user a design format for the user toquickly add new content, which will supplement or replace existingcontent. The result is quick creation of attractive pages containing theuser's own content.

1. Click Select Field

To facilitate the user's selection of a text field, some embodimentsselect the entire text field when the user selects any part of the field(e.g., clicks on a word in the text field). These embodiments select theplaceholder text in its entirety to simplify the replacement of thistext. Also, some of these embodiments highlight the entire field (e.g.,in yellow) to reflect the selection of the field in its entirety.

For instance, FIG. 17 illustrates a user selecting a field 1710 thatcontains default placeholder text in the text page 1705, which is basedon a Text Page design of the Design Newsletter template previouslydescribed. As shown in this figure, the entire contents of the field1710 (i.e., all the default placeholder text) are selected with a singleclick. Then, as shown in FIG. 18, the user has typed “HELLO WORLD!” toreplace the default placeholder text that was selected in FIG. 17. Inthis example, the default placeholder text is replaced by the user typedtext. However, one of ordinary skill in the art will recognize that thedefault placeholder text might be replaced through a variety of methodssuch as a drag-and-drop or a cut-and-paste operation.

2. Paragraph Character Revealed

In some embodiments, a drag or select operation in a field reveals theunderlying formatting of the content within the field. This underlyingformatting might include hidden characters such as a paragraph character(e.g., a paragraph character between in line text). This feature isparticularly useful for a user, while modifying the content of a field,to quickly understand the relationship between the in line content inthe field. For instance, paragraphs may need to be removed or added toenhance the view of content within the field.

FIG. 17 shows a page 1705 in a field 1710 currently selected forediting. In FIG. 17, the entire contents of the field 1710 arehighlighted and the default placeholder text in the field 1710 revealssuch formatting (e.g., hidden paragraph character 1725). FIG. 18 shows aparagraph character 1825 that is revealed after the selection of aportion of the text that the user added. In some embodiments, thesehidden characters are displayed in blue to offset the yellow color usedto highlight text in these embodiments.

B. Replacing Placeholder Text with Multimedia

Just as text can replace text, so can non-text content replace textcontent and vice versa. For instance, FIGS. 19-20 illustrate an exampleof an image replacing placeholder text in a field. In FIG. 19, an image1910 is selected and dragged across the page 1905. This image 1910 isthen dropped onto a field 1920, which contains a large amount of text.As shown in FIG. 20, this single (drag-and-drop) operation has replacedthe entire volume of text in the field 1920 with the image 1910. Asshown in this figure, the field 1920 has been automatically reformattedto account for the size and dimensional characteristics of the insertedimage 1910. In other embodiments, the placed content is formatted and/orreformatted to adjust to the characteristics of the field instead.

C. Replacing Placeholder Image with Image

FIGS. 21 and 22 illustrate easy drag and drop replacement of a suggestedplaceholder image with a user specified image from the media library.FIG. 21 illustrates the dragging of a thumbnail copy 2125 of an image2110 in the media library 2115 to a field 2120 that displays a defaultimage in a page. FIG. 22 then illustrates the content of the field 2220replaced with the image 2210. Thus, some embodiments provide the abilityto place and replace suggested content in a convenient one-step manner.

D. Existing Content on a Page Wrapping Around Newly Added Content:Floating Layer

To allow a user to add content to a document without deleting existingcontent previously added or defined for the document, some embodimentsallow the existing content to wrap around the newly added content. Toexplain this wrapping functionality, a brief description of how adocument is defined is first provided below.

1. Body and Floating Layer

Some embodiments define a document by reference to body and floatinglayers. Content can be defined on both of these layers. Content in thebody layer is placed “in line” (i.e., two pieces of content cannotoverlap in the body layer) in some embodiments. In contrast, contentwithin the floating layer can overlap with other content within thefloating layer. In other words, content in the floating layer mayocclude other content in this layer. Consequently, in these embodiments,adding new content or dragging existing content within the floatinglayer may result in overlapped content.

Content in the floating layer is not affected by content in the body ofthe document. Content in either the floating or body layer can bereplaced with new content without affecting content in the other layer.For instance, in FIG. 4, the image 415 of the children and the box 420are part of the floating layer while the text field 410 is part of thebody layer. As shown in FIGS. 19 and 20, the replacement of the defaulttext content in the body layer with the new image only moves the box 420and has no effect on the image 415 in the floating layer. Similarly, asshown in FIGS. 21 and 22, the replacement of the default image 415 withthe new image has no effect on the text field 410 and the box 420.

2. Content Wrapping in Real Time

On the other hand, the body layer and contents within it might movearound when content is added to the floating layer that does not replaceother content in the floating layer, or existing content on the floatinglayer is moved around such that it now occupies locations previouslyassigned to the body layer. For instance, FIG. 23 illustrates an image2310 being dropped into the floating layer of a page 2300 with a TextPage design 2305. As shown in this figure, some embodiments allow easyaccess to the floating layer 2330 of a document through a drag-and-dropoperation on a border 2330 of the page 2300.

FIG. 24 illustrates that when the image 2310 is dropped on the page 2300close to its border 2330, the body layer text on this page 2300 wrapsaround it. FIG. 25 illustrates that the wrapping around of this textchanges as the image 2310 is dragged around on the page. In someembodiments, wrapping is performed by adjusting the margins of thefields in the body when floating layer objects (i.e., content in thefloating layer) are introduced into space previously assigned to thesefields. In other embodiments, wrapping is performed by adjusting themargins of the body. Yet, other embodiments adjust the margins of thebody and fields within the body.

Some embodiments further provide a user interface and tools for a userto configure the wrapping of content in a page design. In theseembodiments, the tools for configuring the automated wrapping may beaccessed by a wrap button 2435. When this button is selected, a dropdownmenu 2605 opens up, as shown in FIG. 26. Through this menu 2605, theuser can specify how the body should wrap around the floating layerobjects. Specifically, as shown in FIG. 26, the menu 2605 illustrates apreview of several selections of possible wrapping styles. The previewof each wrapping style includes a representation of text and arepresentation of an image. The relationship between these tworepresentations in each preview illustrates the wrapping style of theselection. For instance, the preview of the top selection in FIG. 26illustrates text wrapping on the top, bottom, and left sides of theimage, while the preview of the last selection in FIG. 26 illustratestext wrapping on only the top and bottom sides of the image.

As further shown in FIG. 25, the content in the previous example, andthe wrapping in particular, are updated in real time in page design 2300as the image 2310 is dragged around the page design 2505. Also shown inthis figure, the content in the body of the page of the document may beautomatically shifted to a new page 2515 in order to preserve theaesthetic view of the content. In some embodiments, the new page 2515may carry over the formatting of the previous page 2300.

Some embodiments employ the wrapping functionality in order to maintainthe readability of content in the body of a document as content is addedand manipulated (e.g., moved, formatted, or removed). This feature isparticularly useful for maintaining the view and aesthetics of in-lineformatted content in the body of a document as content is added andmanipulated in the floating layer. In some embodiments, wrapping isperformed by adjusting the margins surrounding one object of contentbased on a border of another object.

3. Easy Access to the Floating Layer

The embodiments described above also provide an easy method of accessingthe floating layer of a document. Users of other applications need toenter several menu choices and perform several clicks of the pointingdevice to access the floating layer of a document. Thus, manipulatingcontent in the floating layer was a much more difficult proposition. Theaccess and manipulation were so unintuitive that many users avoidedaccessing the floating layer of documents or were unaware of itsexistence and usability altogether. One way that the invention assiststhe user in identifying the floating layer is through highlighting,which will now be described.

D. Highlighting

In order to aid a user in modifying content in the page, someembodiments provide visual cues in the form of highlighting the currentelement of the page being modified. This feature is particularly usefulin aiding a user to distinguish the fields, body, and floating layer ofthe document being modified. For instance, FIGS. 27-29 show highlightingof the three elements of a document described above when each element isactive for editing. These figures include a cursor, a document, afloating layer, a body, and a field in the document. Highlighting isillustrated in these figures by bold dashed lines.

FIGS. 27-29 will be described by reference to a highlighting process3000 shown in FIG. 30. The process 3000 begins by checking at 3005whether a pointing device cursor (cursor) is over the page. In someembodiments, the checking is performed by a hit detect mechanism whichpolls the location coordinates under the cursor. Checking may occur onlyunder certain conditions for some embodiments. For instance, checkingmay only occur when content is being dragged in some embodiments. Inthese embodiments, if checking occurs and if the cursor is not over apage of a document in the user interface then the process ends.

If the cursor is over a page, then the process checks at 3010 whetherthe cursor is over the body of the page. In some embodiments, arectangular region within the page represents the body of the page. Ifthe cursor is not over the body of the page, then the process highlightsat step 3015 the border of the page to indicate that the floating layeris currently active or selected within the page, and then ends. In someembodiments, the process repeats so long as a condition is met such as adrag operation is being performed. FIG. 27 illustrates highlighting of afloating layer 2730 of a document 2700 when a cursor 2710 is over thefloating layer 2730.

If the cursor is over the body, then the process checks at step 3020whether the cursor is over a field. If the cursor is not over a field,then the process highlights the body at step 3025 to indicate the bodyis currently active within the page, and then ends. FIG. 28 illustrateshighlighting of a body 2815 of a document 2800 when a cursor 2810 isover the body 2815.

If the cursor is over a field, the process highlights at step 3030 thefield to indicate that the particular field is currently active withinthe page, and then ends. FIG. 29 illustrates highlighting of a field2920 in a document 2900 when a cursor 2910 is over the field 2920. Insome embodiments, the field highlight takes on a number of shapes thatmay represent an outline of the contents of the particular field.

III. Software Architecture

A. Object Diagram

Some embodiments implement the elements of a document described above asobjects in an object-oriented software environment. FIG. 31 illustratesan object diagram 3100 for these embodiments. For instance, the objectdiagram 3100 represents the document shown in FIG. 4. The object diagram3100 includes a document object 3105 that is associated with a bodyobject 3110 and one or more pages objects 3145. Thus, content for thedocument 3105 may be associated with the body 3110 and/or the pages3145.

Some embodiments define one page object for each page in a document.Thus, the pages 3145 include a page 3150, which corresponds to thesingle page 405 shown in FIG. 4. However, one of ordinary skill willrecognize that the document 3105 might have any number of associatedpages, in other embodiments.

Content in the body 3110 of some embodiments is divided into sections3115. These sections 3115 can be used to associate content in the bodyto the pages 3145. For instance, the sections 3115 include a section3120. In the embodiment shown in FIG. 31, the section 3120 is associatedto the page 3150 in the document 3105. In some embodiments, theassociation between sections and pages can specify a one-to-onerelationship. However, one of ordinary skill will recognize that inother embodiments the relationship between sections and pages couldspecify a ratio other than one-to-one. One of ordinary skill will alsorecognize that the body might have any number of associated sections inother embodiments.

Thus, content for the document 3105 may be associated, through thesections 3115, to the body 3110 and/or to the pages 3150. Someembodiments define an object for each field that can contain content inthe body or the page. For instance, section 3120 has a variety ofassociated content objects that include placeholder objects 3125, 3130,and 3135, and a media object 3140. The placeholder objects 3125-40 aretext objects, while the media object 3140 specifies an image of a bluerectangle, in the embodiment shown in FIG. 31.

The page 3150 also has a variety of associated content objects thatinclude text objects 3160, 3165, 3180, a placeholder object 3170, and amedia object 3175. In this embodiment, the text objects 3160, 3165, and3180 specify text boxes, the placeholder object 3170 includes an image,and the media object 3175 specifies a yellow rectangle. However, incontrast to the objects associated to the body 3110, objects associatedto the pages 3150 are floating objects 3155. As described in theprevious section, the floating objects 3155 exist in the pages 3150independent of objects in the body 3110 and independent of other objectsin the pages 3150. In some embodiments, this feature of the floatingobjects 3155 is specified in a description of the floating objects 3155.In contrast, objects in the body 3110 typically have a relationship toother objects in the body 3110, such as a sequential or in-linerelationship, in some embodiments. Thus, the content objects in FIG. 31can be used to represent the content and fields described in relation toFIG. 4.

As described in Section II, the document 3105 may be edited. Forinstance, FIGS. 21-22 illustrate the replacement of a placeholder image.The replacement of the placeholder image in FIGS. 21-22 will now bedescribed by reference to FIGS. 31-32. As described above, the page 3150has the placeholder object 3170 that includes an image (girls). FIG. 32is the object diagram 3200 with the placeholder object 3270 updated toreflect a new image (winter scene) that has replaced the previous image(girls).

Also described in Section II, the document 3105 may be edited by theinsertion of additional page designs. For instance, FIGS. 7-12illustrate the insertion of two additional page designs after the Coverpage design by using the Design Newsletter template to create athree-page template document. FIG. 33 is an object diagram 3300 for sucha three-page document. The object diagram 3300 includes a document 3305with associated pages 3355, 3360, 3365, and a body 3310. The body 3310includes three sections 3335, 3340, 3345 that are associated to thethree pages 3355, 3360, 3365, respectively. Each of these sections hasvarious associated content objects (e.g., placeholder objects 3335,3340, 3345).

The pages 3350 have various associated floating objects. For instance, apage 3365 has associated floating objects 3370. The floating objects3370 include a text object 3375, a media object 3380, and a placeholderobject 3385. In the embodiment shown in FIG. 33, the text object 3375 isa text box, the media object 3380 is a rectangle, and the placeholderobject 3385 has an image. One of ordinary skill will recognize thatthese objects are merely representative. For instance, the text object3375 may include content having various formats such as a table, or achart. Similarly, the media object 3380 may contain various media suchas an image, a sound, or a video. The placeholder object 3385 may alsocontain a variety of forms of content.

Thus, the FIG. 33 may be used to represent the content for the documenthaving three page designs shown in FIG. 12. However, certain contentobjects related to the three-page document shown in FIG. 12 have beenomitted in FIG. 33, for clarity in the description of FIG. 33.

B. File Formats

Some embodiments use description files to store a description of theobjects discussed above. These embodiments may use any number of formatsfor description files such as the extensible markup language (XML)format. For instance, when a document is created, edited, or simplyopened, some embodiments use an object representation (like the onesillustrated in FIGS. 31-33) for the document. On the other hand, whenthe document is closed, these embodiments convert the objectrepresentation to a description file (e.g., XML) representation.

FIG. 34 illustrates one example of such an approach. Specifically, thisfigure illustrates the word processing application 3405 having a parser3410 retrieve an XML description 3420 of a document that is stored on adisk 3415. As shown in this figure, the parser provides the objectrepresentation 3425 of the document to the application 3405. When theapplication 3405 closes the document, the application 3405 directs theparser 3410 to convert the object representation 3425 back to the XMLrepresentation.

One advantage of using description files, particularly in the XMLformat, is the ability to export a document that has been created byusing the methods described above to other applications. These otherapplications might include, for example, word processing, presentation,or other document creation applications that are provided by AppleComputer, Inc., Microsoft, Inc., Adobe, Inc., etc. FIG. 34 illustratesthis advantage. Specifically, this figure illustrates a second parser3430 that opens the XML representation 3420 of the document for a secondapplication 3435.

FIG. 35 illustrates a computer system with which some embodiments of theinvention are implemented. Computer system 3500 includes a bus 3505, aprocessor 3510, a system memory 3515, a read-only memory 3520, apermanent storage device 3525, input devices 3530, and output devices3535.

The bus 3505 collectively represents all system, peripheral, and chipsetbuses that communicatively connect the numerous internal devices of thecomputer system 3500. For instance, the bus 3505 communicativelyconnects the processor 3510 with the read-only memory 3520, the systemmemory 3515, and the permanent storage device 3525.

From these various memory units, the processor 3510 retrievesinstructions to execute and data to process in order to execute theprocesses of the invention. The read-only-memory (ROM) 3520 storesstatic data and instructions that are needed by the processor 3510 andother modules of the computer system.

The permanent storage device 3525, on the other hand, is aread-and-write memory device. This device is a non-volatile memory unitthat stores instructions and data even when the computer system 3500 isoff. Some embodiments of the invention use a mass-storage device (suchas a magnetic or optical disk and its corresponding disk drive) as thepermanent storage device 3525.

Other embodiments use a removable storage device (such as a floppy diskor ZIP® disk, and its corresponding disk drive) as the permanent storagedevice. Like the permanent storage device 3525, the system memory 3515is a read-and-write memory device. However, unlike storage device 3525,the system memory is a volatile read-and-write memory, such a randomaccess memory. The system memory stores some of the instructions anddata that the processor needs at runtime. In some embodiments, theinvention's processes are stored in the system memory 3515, thepermanent storage device 3525, and/or the read-only memory 3520.

The bus 3505 also connects to the input and output devices 3530 and3535. The input devices enable the user to communicate information andselect commands to the computer system. The input devices 3530 includealphanumeric keyboards and pointing devices. The output devices 3535display images generated by the computer system. For instance, thesedevices display a graphical user interface. The output devices includeprinters and display devices, such as cathode ray tubes (CRT) or liquidcrystal displays (LCD).

Finally, as shown in FIG. 35, bus 3505 also couples computer 3500 to anetwork 3565 through a network adapter (not shown). In this manner, thecomputer can be a part of a network of computers (such as a local areanetwork (“LAN”), a wide area network (“WAN”), or an Intranet, or anetwork of networks, such as the internet. For example, the computer3500 may be coupled to a web server (network 3565) so that a web browserexecuting on the computer 3500 can interact with the web server as auser interacts with a graphical user interface that operates in the webbrowser.

Any or all components of computer system 3500 may be used in conjunctionwith the invention. However, one of ordinary skill in the art wouldappreciate that any other system configuration may also be used inconjunction with the present invention.

The invention provides users with the ability to quickly create complexdocuments by providing them with numerous templates that can be customconfigured to suit the users' particular needs. In addition, theinvention provides an intuitive set of tools to allow the user to customconfigure the templates. Moreover, the invention provides numerousvisual cues that simplify the process of editing a template.

While the invention has been described with reference to numerousspecific details, one of ordinary skill in the art will recognize thatthe invention can be embodied in other specific forms without departingfrom the spirit of the invention. Thus, one of ordinary skill in the artwould understand that the invention is not to be limited by theforegoing illustrative details, but rather is to be defined by theappended claims.

What is claimed is:
 1. A method for designing a document, comprising:receiving a selection of a default template from among a plurality oftemplates to generate a template document, the default template defininga predetermined configuration for content input into the templatedocument and selection of an initial set of a plurality of pages from anoriginal set of a plurality of pages, each of the original set of theplurality of pages having a respective default page design; generatingthe template document based upon the selection of the default template;presenting the generated template document; receiving a selection of atleast one subsequent page design from a list of page designs of theoriginal set of the plurality of pages to replace the respective defaultpage design for at least one of the plurality of pages of the generatedtemplate document in the initial set, resulting in generating a modifiedtemplate; wherein, in response to the selection of the at least onesubsequent page design, the modified template document comprises amodified set of pages comprising the initial set of a plurality of pageswith one or more of the plurality of pages in the initial set beingreplaced by the at least one subsequent page design of the receivedselection, such that at least one page design of the plurality of pagesin the modified set is different than the default page designs of theinitial set; and wherein subsequent selection of the modified templateresults in generation of a second template document with the at leastone subsequent page design.
 2. The method of claim 1, comprising:receiving a modification to the selected subsequent page design byadding content to the selected subsequent page design, wherein thecontent is automatically formatted by using a predetermined algorithmfor the page design.
 3. The method of claim 2, wherein the contentcomprises text.
 4. The method of claim 2, wherein the content comprisesmultimedia.
 5. The method of claim 1, comprising: receiving amodification to the selected subsequent page design moving content inthe selected subsequent page design, wherein the display of the selectedsubsequent page design is automatically reformatted to adjust for thecontent movement.
 6. The method of claim 5, wherein moving contentwithin the selected subsequent page design after selection comprisesremoving content from the page design of the selected subsequent pagedesign.
 7. The method of claim 1, comprising: receiving a modificationto the predetermined configuration for content of the selectedsubsequent page design.
 8. The method of claim 1, comprising: receivinga modification to a respective predetermined configuration of theselected subsequent page design such that a predetermined algorithm forformatting content in the selected subsequent page design is modified.9. The method of claim 1, comprising: storing the default template tothe generated template document; and storing the selected subsequentpage design to the modified template.
 10. The method of claim 9,comprising retrieving the stored default template.
 11. The method ofclaim 9, comprising retrieving the stored selected page design.
 12. Amethod for designing a document, comprising: receiving a selection of adefault template from among a plurality of templates to generate atemplate document, the default template defining a predeterminedconfiguration for content input into the template document and selectionof an initial set of a plurality of pages from an original set of aplurality of pages, each of the original set of the plurality of pageshaving a respective default page design; generating the templatedocument based upon the selection of the default template; presentingthe generated template document; receiving a selection of at least onesubsequent page design from a list of page designs of the original setof the plurality of pages to replace the respective default page designof at least one of the plurality of pages of the generated templatedocument in the initial set, resulting in generating a modified templatethat comprises a modified set of pages comprising the initial set of aplurality of pages with one or more of the plurality of pages in theinitial set being replaced by the at least one subsequent page design ofthe received selection; and receiving one or more modifications to thepredetermined configurations of the selected one or more subsequent pagedesigns in the modified set such that a predetermined algorithm forformatting content in each of the selected one or more subsequent pagedesign are modified; and wherein subsequent selection of the modifiedtemplate results in generation of a second template document with the atleast one subsequent page design.
 13. The method of claim 12, whereinthe content comprises text.
 14. The method of claim 12, wherein thecontent comprises multimedia.
 15. The method of claim 12, comprisingreceiving a modification to the selected subsequent page design bymoving content in the selected subsequent page design, wherein thedisplay of the selected subsequent page design is automaticallyreformatted to adjust for the content movement.
 16. The method of claim12, comprising: storing the default template to the generated templatedocument; and storing the selected subsequent page design to themodified template.
 17. The method of claim 16, comprising retrieving thestored default template.
 18. The method of claim 16, comprisingretrieving the stored selected subsequent page design.
 19. The method ofclaim 12, comprising receiving a modification to the selected subsequentpage design by adding content to the selected subsequent page design,wherein the content is automatically formatted by using a predeterminedalgorithm for the selected subsequent page design.
 20. The method ofclaim 12, wherein, in response to the selection of the at least onesubsequent page design, the modified template comprises, at least onepage design different than the default page designs found in the initialset.
 21. One or more non-transitory, tangible computer-readable mediacomprising instructions that, when executed by one or more processors,cause the one or more processors to: receive a selection of a defaulttemplate from among a plurality of templates to generate a templatedocument, the default template defining a predetermined configurationfor content input into the template document and selection of an initialset of a plurality of pages from an original set of a plurality ofpages, each of the original set of the plurality of pages having arespective default page design; generate the template document basedupon the selection of the default template; present the generatedtemplate document; receive a selection of at least one subsequent pagedesign from a list of page designs of the original set of the pluralityof pages to replace the respective default page design for at least oneof the plurality of pages of the generated template document in theinitial set, resulting in generating a modified template; wherein, inresponse to the selection of the at least one subsequent page design,the modified template document comprises a modified set of pagescomprising the initial set of a plurality of pages with one or more ofthe plurality of pages in the initial set being replaced by the at leastone subsequent page design of the received selection, such that at leastone page design of the plurality of pages in the modified set isdifferent than the default page designs of the initial set; and whereinsubsequent selection of the modified template results in generation of asecond template document with the at least one subsequent page design.22. The one or more computer-readable media of claim 21, wherein theinstructions, when executed by the one or more processors, cause the oneor more processors to: receive a modification to the selected subsequentpage design by adding content to the selected subsequent page design,wherein the content is automatically formatted by using a predeterminedalgorithm for the page design.
 23. The one or more computer-readablemedia of claim 21, wherein the content comprises text, multimedia, orsome combination thereof.
 24. The one or more computer-readable media ofclaim 21, wherein the instructions, when executed by the one or moreprocessors, cause the one or more processors to: receive a modificationto the selected subsequent page design by moving content in the selectedsubsequent page design, wherein the display of the selected subsequentpage design is automatically reformatted to adjust for the contentmovement; and wherein moving content within the selected subsequent pagedesign after selection comprises removing content from the page designof the selected subsequent page design.